import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)
const types = {
    SET_AUTHENTICATED: "SET_AUTHENTICATED",
    SET_USER: 'SET_USER'
}
const state = {
    isAuthenticated: false,
    user: {}
}
const getters = {
    isAuthenticated: state => state.isAuthenticated,
    user: state => state.user
}
const mutations = {
    [types.SET_AUTHENTICATED] (state, isAuthenticated) {
        if (isAuthenticated) state.isAuthenticated = isAuthenticated
        else state.isAuthenticated = false
    },
    [types.SET_USER] (state, user) {
        if (user) state.user = user
        else state.user = {}
    }
}
const actions = {
    setAuthenticated: ({ commit }, isAuthenticated) => {
        commit(types.SET_AUTHENTICATED, isAuthenticated)
    },
    setUser: ({ commit }, user) => {
        commit(types.SET_USER, user)
    },
    clearCurrentState:({commit})=>{
        commit(types.SET_AUTHENTICATED,false)
        commit(types.SET_USER,null)
    }
}
export default new Vuex.Store({
    state,
    getters,
    mutations,
    actions,
})